iT邦幫忙

2024 iThome 鐵人賽

DAY 28
1

dbt Unit Test 介紹

在 dbt 推出 1.8 版本(目前最新版本)時,也同時推出了新功能 - Unit Test,在介紹 dbt Unit Test 如何運作前,先來介紹 Unit Test 概念。

什麼是 Unit Test?

Unit Test(單元測試) 是軟體開發中一種測試技術,用來驗證軟體中最小的可測試單元(通常是一個函數)的正確性。單元測試通過對個別模組或函數的邏輯進行測試,檢查它們是否按照預期運行,確保每個單元獨立運行時能夠提供正確的結果。

為什麼需要 Unit Test

  1. 提高代碼品質:對每個單元進行測試可以捕捉到邏輯錯誤,避免 bug 蔓延到整個系統
  2. 及早發現問題:單元測試在開發過程中進行,能夠及早發現問題,減少後期修復成本
  3. 降低開發風險:當程式碼變更時,單元測試可幫助確保新的程式碼不會破壞既有功能
  4. 文檔作用:能夠向開發者展示每個函數或模組的預期行為

在 dbt 的 Unit Test,則是用於驗證 model 中 SQL 邏輯,而 dbt test 則是用於驗證資料的品質和正確性,新加入的 Unit Test 功能,把測試涵蓋到執行前,進一步提升正確性和效率。

使用 Unit Test 時機

根據 dbt 官方文件,當 models 包含以下情境,就適合加上 Unit Test:

  • 複雜的邏輯
    • 正則表達式
    • 日期運算
    • 窗口函數(Window functions)
    • 當有多個條件時的 Case When 語句
    • 資料截斷
  • 自定義的函式
  • 很重要的 models
  • 重構資料轉換前(避免重構後造成資料異常)

Unit Test 建議是在 CI 時運行,在正式環境運行前能夠發現錯誤(與 dbt-dry-run 概念有點類似,但更專注於驗證邏輯)

以上就是 dbt Unit Test 的概念及使用時機介紹,下一篇將會介紹怎麼寫 dbt Unit Test

參考


上一篇
dbt CI/CD pipeline
下一篇
如何使用 dbt Unit Test
系列文
dbt 修煉之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言